Ráðstöfunartekjur og Neysluviðmið

Hver eiga efni og á hversu miklu?

Staðtölur skatta

Code
d_tiund <- read_excel("V_HJUSKAPUR_TEKJUBIL_EINST.xlsx") |> 
    janitor::clean_names() |> 
    filter(tekjubil >= 5, tekjubil <= 95) |> 
    group_by(tekjuar, tekjubil) |> 
    summarise(fjoldi = sum(fjoldi),
              heildartekjur = sum(heildartekjur),
              skattar = sum(skattar),
              heildarskuldir = sum(heildarskuldir),
              lifeyrirsgreidslur = sum(lifeyrirsgreidslur),
              radst_tekjur = heildartekjur - skattar - lifeyrirsgreidslur,
              tekjuar = unique(as.numeric(tekjuar)),
              einst_radst = radst_tekjur/fjoldi,
              einst_heildartekjur = heildartekjur / fjoldi,
              .groups = "drop") |> 
    select(tekjuar, tekjubil, fjoldi, radst_tekjur, einst_radst, einst_heildartekjur) |> 
    arrange(tekjuar, tekjubil)

Heildartekjur

Code
p <- d_tiund |> 
    ggplot(aes(tekjuar, einst_heildartekjur, col = tekjubil, group = tekjubil)) +
    geom_line() +
    geom_rangeframe(colour = "black") +
    scale_y_log10(labels = label_number(accuracy = 100), 
                  breaks = c(min(d_tiund$einst_heildartekjur),
                             max(d_tiund$einst_heildartekjur),
                             3e5,
                             1e6, 3e6,
                             1e7)) +
    scale_x_continuous(breaks = c(1992, 2000, 2010, 2020)) +
    scale_color_distiller(type = "div", palette = "RdBu", 
                          breaks = c(5, 25, 50, 75, 95),
                          guide = guide_colorbar(reverse = F, barheight = unit(150, "points"))) +
    theme_tufte() +
    labs(x = "Tekjuár",
         y = "Heildartekjur meðaleinstaklings",
         colour = "Hundraðshl.\ntekna",
         title = "Þróun heildartekna meðaleinstaklings eftir hundraðshlutamarki (percentile) tekna",
         caption = "Kóði og gögn: https://github.com/bgautijonsson/neysluvidmid") +
    theme(legend.position = c(1, 0.8), 
          plot.margin = margin(t = 5, r = 65, b = 5, l = 5),
          plot.title.position = "panel",
          plot.title = element_text(face = "bold")) 


p

Code
ggsave(plot = p, filename = "heild_tekjur_yearly.png",
       width = 8, height = 0.5 * 8, scale = 1.5, bg = "white")
Code
p <- d_tiund |> 
    ggplot(aes(tekjubil, einst_heildartekjur, col = tekjuar, group = tekjuar)) +
    geom_line() +
    geom_rangeframe(colour = "black") +
    scale_y_log10(labels = label_number(accuracy = 100), breaks = c(min(d_tiund$einst_heildartekjur),
                                                                    max(d_tiund$einst_heildartekjur),
                                                                    3e5,
                                                                    1e6, 3e6,
                                                                    1e7)) +
    scale_x_continuous(breaks = c(5, 25, 50, 75, 95)) +
    scale_color_distiller(type = "div", palette = "RdBu", 
                          breaks = c(1992, 2000, 2010, 2020),
                          guide = guide_colorbar(reverse = F, barheight = unit(105, "points"))) +
    theme_tufte() +
    labs(x = "Hundraðshlutamark tekna (Percentile)",
         y = "Heildartekjur meðaleinstaklings",
         colour = "Tekjuár",
         title = "Heildartekjur meðaleinstaklings eftir hundraðshlutamarki (percentile) tekna",
         caption = "Kóði og gögn: https://github.com/bgautijonsson/neysluvidmid") +
    theme(legend.position = c(0.995, 0.84), 
          plot.margin = margin(t = 5, r = 65, b = 5, l = 5), 
          plot.title.position = "panel",
          plot.title = element_text(face = "bold")) 


p

Code
ggsave(plot = p, filename = "heild_tekjur.png",
       width = 8, height = 0.5 * 8, scale = 1.5, bg = "white")

Ráðstöfunartekjur

Code
p <- d_tiund |> 
    ggplot(aes(tekjuar, einst_radst, col = tekjubil, group = tekjubil)) +
    geom_line() +
    geom_rangeframe(colour = "black") +
    scale_y_log10(labels = label_number(accuracy = 100), 
                  breaks = c(min(d_tiund$einst_radst),
                             max(d_tiund$einst_radst),
                             3e5,
                             1e6, 3e6)) +
    scale_x_continuous(breaks = c(1992, 2000, 2010, 2020)) +
    scale_color_distiller(type = "div", palette = "RdBu", 
                          breaks = c(5, 25, 50, 75, 95),
                          guide = guide_colorbar(reverse = F, barheight = unit(150, "points"))) +
    theme_tufte() +
    labs(x = "Tekjuár",
         y = "Ráðstöfunartekjur meðaleinstaklings",
         colour = "Hundraðshl.\ntekna",
         title = "Þróun ráðstöfunartekna meðaleinstaklings eftir hundraðshlutamarki (percentile) tekna",
         caption = "Kóði og gögn: https://github.com/bgautijonsson/neysluvidmid") +
    theme(legend.position = c(1, 0.8), 
          plot.margin = margin(t = 5, r = 65, b = 5, l = 5), 
          plot.title.position = "panel",
          plot.title = element_text(face = "bold")) 


p

Code
ggsave(plot = p, filename = "radst_tekjur_yearly.png",
       width = 8, height = 0.5 * 8, scale = 1.5, bg = "white")
Code
p <- d_tiund |> 
    ggplot(aes(tekjubil, einst_radst, col = tekjuar, group = tekjuar)) +
    geom_line() +
    geom_rangeframe(colour = "black") +
    scale_y_log10(labels = label_number(accuracy = 100), breaks = c(min(d_tiund$einst_radst),
                                                                    max(d_tiund$einst_radst),
                                                                    3e5,
                                                                    1e6, 3e6)) +
    scale_x_continuous(breaks = c(5, 25, 50, 75, 95)) +
    scale_color_distiller(type = "div", palette = "RdBu", 
                          breaks = c(1992, 2000, 2010, 2020),
                          guide = guide_colorbar(reverse = F, barheight = unit(105, "points"))) +
    theme_tufte() +
    labs(x = "Hundraðshlutamark tekna (Percentile)",
         y = "Ráðstöfunartekjur meðaleinstaklings",
         colour = "Tekjuár",
         title = "Ráðstöfunartekjur meðaleinstaklings eftir hundraðshlutamarki (percentile) tekna",
         caption = "Kóði og gögn: https://github.com/bgautijonsson/neysluvidmid") +
    theme(legend.position = c(0.995, 0.84), 
          plot.margin = margin(t = 5, r = 65, b = 5, l = 5), 
          plot.title.position = "panel",
          plot.title = element_text(face = "bold")) 


p

Code
ggsave(plot = p, filename = "radst_tekjur.png",
       width = 8, height = 0.5 * 8, scale = 1.5, bg = "white")

Þjóðskrá

Kaupverð

Code
d_fast <- read_csv2("hverfaverd_fjolbyli_ar.csv",
                    locale = locale("is", encoding = "ISO-8859-1")) |> 
    janitor::clean_names() |> 
    group_by(tekjuar = ar) |> 
    mutate(heildarfj = sum(fjoldi_i_urtaki),
           p = fjoldi_i_urtaki/heildarfj) |> 
    summarise(kaupverd = sum(p * medalkaupverd_thus_kr * 1000))
Code
p <- d_fast |> 
    ggplot(aes(tekjuar, kaupverd)) +
    geom_line() +
    geom_rangeframe() +
    scale_y_continuous(labels = label_number(accuracy = 1e5, big.mark = ".", decimal.mark = ",", suffix = "kr"),
                       breaks = c(min(d_fast$kaupverd), max(d_fast$kaupverd),
                                  1e7, 2e7, 3e7, 4e7)) +
    theme_tufte() +
    labs(x = "Ár",
         y = "Meðalkaupverð fjölbýliseignar",
         title = "Þróun meðalkaupverðs fjölbýliseigna",
         caption = "Kóði og gögn: https://github.com/bgautijonsson/neysluvidmid")

p

Code
ggsave(plot = p, filename = "medalverd_fjolbylis.png",
       width = 8, height = 0.5 * 8, scale = 1.5, bg = "white")

Tenging

Code
d <- d_fast |> 
    inner_join(
        d_tiund,
        by = "tekjuar"
    )

Leiguverð

Code
d_leiga <- read_csv2("verd_e_baejum_ar.csv",
         locale = locale("is", encoding = "ISO-8859-1")) |> 
    janitor::clean_names() |> 
    filter(svaedi %in% c("Breiðholt",
                         "Reykjavík, austan Kringlumýrarbrautar",
                         "Reykjavík, vestan Kringlumýrarbrautar og Seltjarnarnes",
                         "Kópavogur",
                         "Kjalarnes og Mosfellsbær",
                         "Grafarvogur, Grafarholt, Árbær, Norðlingaholt og Úlfarsárdalur",
                         "Garðabær, Hafnarfjörður og Álftanes"),
           fjoldi_herbergja == "3") |> 
    group_by(ar) |> 
    summarise(n = sum(fjoldi_samninga),
              fermetraverd = sum(fjoldi_samninga * medalfermetraverd) / n,
              leiguverd = fermetraverd * 60 * 12,
              .groups = "drop") |> 
    select(tekjuar = ar, leiguverd)
Code
p <- d_leiga |> 
    ggplot(aes(tekjuar, leiguverd / 12)) +
    geom_line() +
    geom_rangeframe() +
    scale_x_continuous(breaks = 2011:2022) +
    scale_y_continuous(labels = label_number(accuracy = 1e3, big.mark = ".", decimal.mark = ",", suffix = "kr"),
                       breaks = c(min(d_leiga$leiguverd/12), max(d_leiga$leiguverd/12),
                                  1.5e5,2e5)) +
    theme_tufte() +
    theme(plot.title = element_text(face = "bold")) +
    labs(x = "Ár",
         y = "Meðalleiguverð 80fm íbúðar",
         title = "Þróun meðalleiguverðs 60fm íbúðar",
         caption = "Kóði og gögn: https://github.com/bgautijonsson/neysluvidmid")

p

Code
ggsave(plot = p, filename = "medalleiguverdverd_fjolbylis.png",
       width = 8, height = 0.5 * 8, scale = 1.5, bg = "white")
Code
plot_dat <- d_leiga |> 
    inner_join(
        d_fast,
        by = "tekjuar"
    ) |> 
    mutate(hlutf = leiguverd / kaupverd)

p <- plot_dat |> 
    ggplot(aes(tekjuar, hlutf)) +
    geom_line() +
    geom_rangeframe() +
    scale_x_continuous(breaks = 2011:2020) +
    scale_y_continuous(breaks = c(range(plot_dat$hlutf), 0.054, 0.056, 0.058, 0.06),
                       labels = label_percent()) +
    theme_tufte() +
    theme(plot.title = element_text(face = "bold")) +
    labs(x = NULL, y = NULL,
         title = "Leiguverð sem hlutfall af kaupverði fyrir íbúðir í fjölbýli á Höfuðborgarsvæðinu (2011 - 2020)")
p

Code
ggsave(plot = p, filename = "leiguverd_hlutf_kaupverd_fjolbylis.png",
       width = 8, height = 0.5 * 8, scale = 1.5, bg = "white")

Neysluviðmið

Einstaklingur

Code
vidmid_an_bils <- 1568899
vidmid_med_bil <- 2376555
vidmid_med_barn <- 3615009


neysluvidmid_einst <- read_excel("SI_Export_20220412163500976.xlsx", skip = 11, 
                                 col_names = c("dags", "verdbolga", "markmid")) |> 
    mutate(dags = lubridate::dmy(dags),
           ar = year(dags)) |> 
    filter(month(dags) == 1) |> 
    select(ar, verdbolga) |> 
    mutate(verdbolga = 1 + verdbolga / 100,
           uppsofnud_bolga = exp(cumsum(log(verdbolga))),
           verdbolga_mv_2019 = uppsofnud_bolga / uppsofnud_bolga[ar == 2019],
           neysluvidmid_2019_barn = vidmid_med_barn,
           neysluvidmid_2019_bill = vidmid_med_bil,
           neysluvidmid_2019_ekki_bill = vidmid_an_bils,
           neysluvidmid_barn = neysluvidmid_2019_barn * verdbolga_mv_2019,
           neysluvidmid_bill = neysluvidmid_2019_bill * verdbolga_mv_2019,
           neysluvidmid_ekki_bill = neysluvidmid_2019_ekki_bill * verdbolga_mv_2019) |> 
    select(tekjuar = ar, neysluvidmid_barn, neysluvidmid_bill, neysluvidmid_ekki_bill, verdbolga)
Code
plot_dat <- d |> 
    inner_join(
        neysluvidmid_einst,
        by = "tekjuar"
    ) |> 
    mutate(einst_auka_bill = einst_radst - neysluvidmid_bill,
           einst_auka_ekki_bill = einst_radst - neysluvidmid_ekki_bill,
           einst_auka_fasteign = einst_radst - neysluvidmid_bill - kaupverd * 0.042,
           einst_auka_barn = einst_radst - neysluvidmid_barn - kaupverd * 0.042) |> 
    group_by(tekjuar) |> 
    summarise(min_bill = min(tekjubil[einst_auka_bill >= 0]),
              min_ekki_bill = min(tekjubil[einst_auka_ekki_bill >= 0]),
              min_fasteign = min(tekjubil[einst_auka_fasteign >= 0]),
              min_barn = min(tekjubil[einst_auka_barn >= 0])) |> 
    rename("+ bíll" = min_bill, "Einstaklingur" = min_ekki_bill, "+ leiguhúsnæði" = min_fasteign, "+ barn" = min_barn) |> 
    pivot_longer(c(-tekjuar)) |> 
    drop_na()


p <- plot_dat |> 
    ggplot(aes(tekjuar, 1 - value/100)) +
    geom_line(aes(col = name, lty = name, group = name)) +
    geom_rangeframe() +
    geom_text(data = plot_dat |> filter(tekjuar == max(tekjuar)),
              aes(label = name, col = name), hjust = 0, nudge_x = 0.1) +
    scale_x_continuous(expand = expansion(), 
                       limits = c(1991, 2023.5),
                       breaks = c(1992, 1995, 2000, 2005, 2010, 2015, 2020)) +
    scale_y_continuous(limits = c(0, 1), 
                       breaks = c(1 - range(plot_dat$value/100), 0, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 1),
                       expand = expansion(),
                       labels = label_percent()) +
    scale_colour_brewer(type = "qual", palette = "Set1", direction = -1) +
    theme_tufte() +
    theme(legend.position = "none",
          plot.title = element_text(face = "bold")) +
    labs(x = NULL,
         y = NULL,
         title = "Hlutfall einstaklinga sem eiga nóg ráðstöfunarfé til að borga neysluviðmið Félags- og vinnumarkaðsráðuneytisins frá 2019",
         subtitle = "Neysluviðmiðið er leiðrétt fyrir árlegri verðbólgu samkvæmt Seðlabanka til að bera saman við laun annarra ára",
         caption = "Kóði og gögn: https://github.com/bgautijonsson/neysluvidmid")

p

Code
ggsave(plot = p, filename = "neysluvidmid.png",
       width = 8, height = 0.5 * 8, scale = 1.5, bg = "white")

Par

Code
vidmid_an_bils <- 2581034
vidmid_med_bil <- 3461490
vidmid_med_barn <- 4795956

neysluvidmid_par <- read_excel("SI_Export_20220412163500976.xlsx", skip = 11, 
                               col_names = c("dags", "verdbolga", "markmid")) |> 
    mutate(dags = lubridate::dmy(dags),
           ar = year(dags)) |> 
    filter(month(dags) == 1) |> 
    select(ar, verdbolga) |> 
    mutate(verdbolga = 1 + verdbolga / 100,
           uppsofnud_bolga = exp(cumsum(log(verdbolga))),
           verdbolga_mv_2019 = uppsofnud_bolga / uppsofnud_bolga[ar == 2019],
           neysluvidmid_2019_barn = vidmid_med_barn,
           neysluvidmid_2019_bill = vidmid_med_bil,
           neysluvidmid_2019_ekki_bill = vidmid_an_bils,
           neysluvidmid_barn = neysluvidmid_2019_barn * verdbolga_mv_2019,
           neysluvidmid_bill = neysluvidmid_2019_bill * verdbolga_mv_2019,
           neysluvidmid_ekki_bill = neysluvidmid_2019_ekki_bill * verdbolga_mv_2019) |> 
    select(tekjuar = ar, neysluvidmid_barn, neysluvidmid_bill, neysluvidmid_ekki_bill, verdbolga)
Code
plot_dat <- d |> 
    inner_join(
        neysluvidmid_par,
        by = "tekjuar"
    ) |> 
    mutate(einst_auka_bill = 2 * einst_radst - neysluvidmid_bill,
           einst_auka_ekki_bill = 2 * einst_radst - neysluvidmid_ekki_bill,
           einst_auka_fasteign = 2 * einst_radst - neysluvidmid_bill - kaupverd * 0.042,
           einst_auka_barn = 2 * einst_radst - neysluvidmid_barn - kaupverd * 0.042) |> 
    group_by(tekjuar) |> 
    summarise(min_bill = min(tekjubil[einst_auka_bill >= 0]),
              min_ekki_bill = min(tekjubil[einst_auka_ekki_bill >= 0]),
              min_fasteign = min(tekjubil[einst_auka_fasteign >= 0]),
              min_barn = min(tekjubil[einst_auka_barn >= 0])) |> 
    rename("Par" = min_ekki_bill, "+ bíll" = min_bill, "+ leiguhúsnæði" = min_fasteign, "+ barn" = min_barn) |> 
    pivot_longer(c(-tekjuar)) |> 
    drop_na()


p <- plot_dat |> 
    ggplot(aes(tekjuar, 1 - value/100)) +
    geom_line(aes(col = name, lty = name, group = name)) +
    geom_rangeframe() +
    geom_text(data = plot_dat |> filter(tekjuar == max(tekjuar)),
              aes(label = name, col = name), hjust = 0, nudge_x = 0.1) +
    scale_x_continuous(expand = expansion(), 
                       limits = c(1991, 2023.5),
                       breaks = c(1992, 1995, 2000, 2005, 2010, 2015, 2020)) +
    scale_y_continuous(limits = c(0, 1), 
                       breaks = c(1 - range(plot_dat$value/100), 0, 0.2, 0.4, 0.6, 0.7, 0.8, 1),
                       expand = expansion(),
                       labels = label_percent()) +
    scale_colour_brewer(type = "qual", palette = "Set1", direction = -1) +
    theme_tufte() +
    theme(legend.position = "none",
          plot.title = element_text(face = "bold")) +
    labs(x = NULL,
         y = NULL,
         title = "Hlutfall para í sambúð sem eiga nóg ráðstöfunarfé til að borga neysluviðmið Félags- og vinnumarkaðsráðuneytisins frá 2019",
         subtitle = "Neysluviðmiðið er leiðrétt fyrir árlegri verðbólgu samkvæmt Seðlabanka til að bera saman við laun annarra ára",
         caption = "Kóði og gögn: https://github.com/bgautijonsson/neysluvidmid")

p

Code
ggsave(plot = p, filename = "neysluvidmid_par.png",
       width = 8, height = 0.5 * 8, scale = 1.5, bg = "white")

Saman

Code
plot_dat <- d |> 
    inner_join(
        neysluvidmid_einst,
        by = "tekjuar"
    ) |> 
    mutate(einst_auka_bill = einst_radst - neysluvidmid_bill,
           einst_auka_ekki_bill = einst_radst - neysluvidmid_ekki_bill,
           einst_auka_fasteign = einst_radst - neysluvidmid_bill - kaupverd * 0.042,
           einst_auka_barn = einst_radst - neysluvidmid_barn - kaupverd * 0.042) |> 
    group_by(tekjuar) |> 
    summarise(min_bill = min(tekjubil[einst_auka_bill >= 0]),
              min_ekki_bill = min(tekjubil[einst_auka_ekki_bill >= 0]),
              min_fasteign = min(tekjubil[einst_auka_fasteign >= 0]),
              min_barn = min(tekjubil[einst_auka_barn >= 0])) |> 
    rename("+ bíll" = min_bill, "Dæmigerð" = min_ekki_bill, "+ leiguhúsnæði" = min_fasteign, "+ barn" = min_barn) |> 
    pivot_longer(c(-tekjuar)) |> 
    drop_na() |> 
    mutate(type = "Einstaklingur") |> 
    bind_rows(
        d |> 
            inner_join(
                neysluvidmid_par,
                by = "tekjuar"
            ) |> 
            mutate(einst_auka_bill = 2 * einst_radst - neysluvidmid_bill,
                   einst_auka_ekki_bill = 2 * einst_radst - neysluvidmid_ekki_bill,
                   einst_auka_fasteign = 2 * einst_radst - neysluvidmid_bill - kaupverd * 0.042,
                   einst_auka_barn = 2 * einst_radst - neysluvidmid_barn - kaupverd * 0.042) |> 
            group_by(tekjuar) |> 
            summarise(min_bill = min(tekjubil[einst_auka_bill >= 0]),
                      min_ekki_bill = min(tekjubil[einst_auka_ekki_bill >= 0]),
                      min_fasteign = min(tekjubil[einst_auka_fasteign >= 0]),
                      min_barn = min(tekjubil[einst_auka_barn >= 0])) |> 
            rename("Dæmigerð" = min_ekki_bill, "+ bíll" = min_bill, "+ leiguhúsnæði" = min_fasteign, "+ barn" = min_barn) |> 
            pivot_longer(c(-tekjuar)) |> 
            drop_na() |> 
            mutate(type = "Par í sambúð")
    )


p <- plot_dat |> 
    ggplot(aes(tekjuar, 1 - value/100)) +
    geom_line(aes(col = name, lty = name, group = name)) +
    geom_rangeframe() +
    geom_text(data = plot_dat |> filter(tekjuar == max(tekjuar)),
              aes(label = name, col = name), hjust = 0, nudge_x = 0.1) +
    facet_wrap("type") +
    scale_x_continuous(expand = expansion(), 
                       limits = c(1991, 2025.8),
                       breaks = c(1992, 1995, 2000, 2005, 2010, 2015, 2020)) +
    scale_y_continuous(limits = c(0, 1), 
                       breaks = c(1 - range(plot_dat$value/100), 0, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 1),
                       expand = expansion(),
                       labels = label_percent()) +
    scale_colour_brewer(type = "qual", palette = "Set1", direction = -1) +
    theme_tufte() +
    theme(legend.position = "none",
          strip.background = element_rect(fill = "#f0f0f0"),
          strip.text = element_text(size = 10),
          plot.title = element_text(face = "bold")) +
    labs(x = NULL,
         y = NULL,
         title = "Hlutfall einstaklinga og para sem eiga nóg ráðstöfunarfé til að borga neysluviðmið Félags- og vinnumarkaðsráðuneytisins frá 2019",
         subtitle = "Neysluviðmiðið er leiðrétt fyrir árlegri verðbólgu til að bera saman við ráðstöfunartekjur annarra ára",
         caption = "Kóði og gögn: https://github.com/bgautijonsson/neysluvidmid")


ggsave(plot = p, filename = "neysluvidmid_saman.png",
       width = 8, height = 0.5 * 8, scale = 1.7, bg = "white")

p

Neysluviðmið og ráðstöfunartekjur

Einstaklingur

Code
plot_dat <- d |> 
    inner_join(
        neysluvidmid_einst,
        by = "tekjuar"
    ) |> 
    mutate(einst_auka_bill = einst_radst - neysluvidmid_bill,
           einst_auka_ekki_bill = einst_radst - neysluvidmid_ekki_bill,
           einst_auka_fasteign = einst_radst - neysluvidmid_bill - kaupverd * 0.042,
           einst_auka_barn = einst_radst - neysluvidmid_barn - kaupverd * 0.042) |> 
    select(tekjuar, tekjubil, einst_radst, starts_with("einst_auka")) |> 
    mutate(group = case_when(einst_auka_ekki_bill <= 0 ~ "1",
                             einst_auka_bill <= 0 ~ "2",
                             einst_auka_fasteign <= 0 ~ "3",
                             einst_auka_barn <= 0 ~ "4",
                             TRUE ~ "5") |> 
               factor(labels = c("Engum", 
                                 "Dæmig.", 
                                 "Bíl", 
                                 "Leigu", 
                                 "Barni")))

p <- plot_dat |> 
    # filter(tekjuar == min(tekjuar)) |>
    # filter(tekjuar >= 2016) |> 
    ggplot(aes(tekjubil, einst_radst/ 12)) +
    geom_textsmooth(aes(col = group, group = group, label = group), 
                    fontface = 2, method = "loess", formula = y ~ x, size = 3) +
    geom_rangeframe() +
    scale_x_continuous(breaks = c(5, 25, 50, 75, 95),
                       limits = c(5, 95),
                       expand = expansion()) +
    scale_y_log10(labels = label_number(accuracy = 100), 
                  breaks = c(range(d_tiund$einst_radst) / 12,
                             1e4, 3e4,
                             1e5, 3e5),
                  limits = range(d_tiund$einst_radst) / 12) +
    scale_colour_brewer(type = "qual", palette = "Set1") +
    theme_cowplot(font_size = 10) +
    theme(legend.position = "none",
          plot.margin = margin(t = 5, r = 10, b = 5, l = 5)) +
    labs(x = "Tekjubil",
         y = NULL,
         colour = NULL,
         title = "Fyrir hvaða hluta neysluviðmiðanna duga ráðstöfunartekjur einstaklings?",
         subtitle = "Ár: {frame_time}",
         caption = "Kóði og gögn: https://github.com/bgautijonsson/neysluvidmid") +
    transition_time(
        time = as.integer(tekjuar)
    ) +
    ease_aes("cubic-in-out") +
    shadow_trail(distance = 0.01, alpha = 0.05, size = 0.3, label = "")


p_vid <- animate(p, width = 8, height = 0.5 * 8, unit = "in", res = 250, fps = 10, duration = 10,
                 renderer = ffmpeg_renderer(format = "mp4"))

p_vid

Code
anim_save(filename = "neysluvidmid_animation.mp4", animation = p_vid)

Par

Code
plot_dat <- d |> 
    inner_join(
        neysluvidmid_par,
        by = "tekjuar"
    ) |> 
    mutate(einst_auka_bill = 2 * einst_radst - neysluvidmid_bill,
           einst_auka_ekki_bill = 2 * einst_radst - neysluvidmid_ekki_bill,
           einst_auka_fasteign = 2 * einst_radst - neysluvidmid_bill - kaupverd * 0.042,
           einst_auka_barn = 2 * einst_radst - neysluvidmid_barn - kaupverd * 0.042) |> 
    select(tekjuar, tekjubil, einst_radst, starts_with("einst_auka")) |> 
    mutate(group = case_when(einst_auka_ekki_bill <= 0 ~ "1",
                             einst_auka_bill <= 0 ~ "2",
                             einst_auka_fasteign <= 0 ~ "3",
                             einst_auka_barn <= 0 ~ "4",
                             TRUE ~ "5") |> 
               factor(labels = c("Engum", 
                                 "Dæmig.", 
                                 "Bíl", 
                                 "Leigu", 
                                 "Barni")))

p <- plot_dat |> 
    # filter(tekjuar == min(tekjuar)) |>
    # filter(tekjuar >= 2016) |> 
    ggplot(aes(tekjubil, 2 * einst_radst / 12)) +
    geom_textsmooth(aes(col = group, group = group, label = group), 
                    fontface = 2, method = "loess", formula = y ~ x, size = 3) +
    geom_rangeframe() +
    scale_x_continuous(breaks = c(5, 25, 50, 75, 95),
                       limits = c(5, 95),
                       expand = expansion()) +
    scale_y_log10(labels = label_number(accuracy = 100), 
                  breaks = c(2 * range(d_tiund$einst_radst) / 12,
                             3e4,
                             1e5, 3e5,
                             1e6),
                  limits = 2 * range(d_tiund$einst_radst) / 12) +
    scale_colour_brewer(type = "qual", palette = "Set1") +
    theme_cowplot(font_size = 10) +
    theme(legend.position = "none",
          plot.margin = margin(t = 5, r = 10, b = 5, l = 5)) +
    labs(x = "Tekjubil",
         y = NULL,
         colour = NULL,
         title = "Fyrir hvaða hluta neysluviðmiðanna duga ráðstöfunartekjur pars í sambúð?",
         subtitle = "Ár: {frame_time}",
         caption = "Kóði og gögn: https://github.com/bgautijonsson/neysluvidmid") +
    transition_time(
        time = as.integer(tekjuar)
    ) +
    ease_aes("cubic-in-out") +
    shadow_trail(distance = 0.01, alpha = 0.05, size = 0.3, label = "")


p_vid <- animate(p, width = 8, height = 0.5 * 8, unit = "in", res = 250, fps = 10, duration = 10,
                 renderer = ffmpeg_renderer(format = "mp4"))

p_vid

Code
anim_save(filename = "neysluvidmid_animation_par.mp4", animation = p_vid)

Eignasköpunartekjur

Code
tekjur_einst <- read_excel("V_HJUSKAPUR_TEKJUBIL_EINST.xlsx") |> 
    janitor::clean_names() |> 
    filter(tekjubil >= 0, tekjubil <= 100) |> 
    group_by(tekjuar, tekjubil) |> 
    summarise(fjoldi = sum(fjoldi),
              laun = sum(laun),
              tekjuskattur = sum(tekjuskattur),
              heildartekjur = sum(heildartekjur),
              skattar = sum(skattar),
              heildarskuldir = sum(heildarskuldir),
              lifeyrirsgreidslur = sum(lifeyrirsgreidslur),
              radst_tekjur = heildartekjur - skattar - lifeyrirsgreidslur,
              tekjuar = unique(as.numeric(tekjuar)),
              einst_radst = radst_tekjur / fjoldi,
              einst_heildartekjur = heildartekjur / fjoldi,
              .groups = "drop") |> 
    select(tekjuar, tekjubil, fjoldi, einst_radst, einst_heildartekjur, skattar) |> 
    arrange(tekjuar, tekjubil) |> 
    inner_join(
        neysluvidmid_einst,
        by = c("tekjuar")
    ) |> 
    inner_join(
        d_fast,
        by = "tekjuar"
    ) |> 
    mutate(
        neysluvidmid_fasteign = neysluvidmid_bill + kaupverd * 0.042,
        neysluvidmid_barn = neysluvidmid_barn + kaupverd * 0.042,
        einst_auka_bill = einst_radst - neysluvidmid_bill,
        einst_auka_ekki_bill = einst_radst - neysluvidmid_ekki_bill,
        einst_auka_fasteign = einst_radst - neysluvidmid_fasteign,
        einst_auka_barn = einst_radst - neysluvidmid_barn
    )

Einstaklingur

Hlutfall ráðstöfunartekna af heildartekjur

Code
p <- tekjur_einst |>
    filter(tekjuar %in% c(2020)) |>
    mutate(hlutf = einst_radst / einst_heildartekjur) |> 
    ggplot(aes(tekjubil, hlutf)) +
    geom_area(position = "identity", alpha = 0.8, col = "black") +
    scale_x_continuous(breaks = c(5, 25, 50, 75, 100)) +
    scale_y_continuous(labels = label_percent(), limits = c(0, 1)) +
    scale_fill_brewer() +
    coord_cartesian(expand = F) +
    theme_half_open() +
    theme(plot.margin = margin(t = 5, r = 15, b = 5, l = 5),
          legend.position = "none") +
    labs(x = "Tekjubil\n(0% eru lægsti tekjuhópurinn og 100% er hæsti tekjuhópurinn)",
         y = NULL,
         title = "Ráðstöfunartekjur sem hlutfall af heildartekjum eftir tekjubili",
         subtitle = "Ráðstöfunartekjur: Heildartekjur - skattar - lífeyrisgreiðslur",
         caption = "Kóði og gögn: https://github.com/bgautijonsson/neysluvidmid")

ggsave(plot = p, filename = "hlutfall_radsttekna_heildartekjum.png",
       width = 8, height = 0.5 * 8, scale = 1.7, bg = "white")

p

Hlutfall eignasköpunartekna af heildartekjum

2020

Code
plot_dat <- tekjur_einst |>  
    filter(tekjuar %in% c(2020)) |>
    mutate(hlutf = einst_auka_ekki_bill / einst_heildartekjur,
           hlutf = pmax(hlutf, 0))


p <- plot_dat |> 
    ggplot(aes(tekjubil, hlutf)) +
    geom_area(position = "identity", alpha = 0.8, col = "black") +
    scale_x_continuous(breaks = c(5, 25, 50, 75, 100)) +
    scale_y_continuous(labels = label_percent(), limits = c(0, 1)) +
    scale_fill_brewer() +
    coord_cartesian(expand = F) +
    theme_half_open() +
    theme(plot.margin = margin(t = 5, r = 15, b = 5, l = 5),
          legend.position = "none") +
    labs(x = "Tekjubil\n(0% eru lægsti tekjuhópurinn og 100% er hæsti tekjuhópurinn)",
         y = NULL,
         title = "Eignasköpunartekjur sem hlutfall af heildartekjum eftir tekjubili",
         subtitle = "Eignasköpunartekjur: Ráðstöfunartekjur að frádregnum neysluviðmiðum einstaklinga án bíls, barns né fasteignar (133.000kr á mánuði 2020)",
         caption = "Kóði og gögn: https://github.com/bgautijonsson/neysluvidmid")



p

Code
ggsave(plot = p, filename = "hlutfall_tekna_eignaskopun.png",
       width = 8, height = 0.5 * 8, scale = 1.7, bg = "white")
Eftir tegund neysluviðmiða
Code
plot_dat <- tekjur_einst |> 
    pivot_longer(c(contains("einst_auka"))) |> 
    select(tekjuar, tekjubil, einst_heildartekjur, name, value) |> 
    filter(tekjuar %in% c(2020)) |>
    mutate(hlutf = value / einst_heildartekjur,
           hlutf = pmax(hlutf, 0),
           name = fct_recode(name,
                             "Regluleg neysluviðmið (133.00kr/mán)" = "einst_auka_ekki_bill",
                             "+ bíll (201.000kr/mán)" = "einst_auka_bill",
                             "+ leiga (372.00kr/mán)" = "einst_auka_fasteign",
                             "+ barn (477.000kr/mán)" = "einst_auka_barn") |> 
               fct_relevel("Regluleg neysluviðmið (133.00kr/mán)",
                           "+ bíll (201.000kr/mán)", 
                           "+ leiga (372.00kr/mán)", 
                           "+ barn (477.000kr/mán)"))


p <- plot_dat |> 
    ggplot(aes(tekjubil/100, hlutf, fill = name)) +
    geom_area(position = "identity", alpha = 0.7, col = NA) +
    geom_textline(aes(label = name, hjust = name), text_smoothing = 30, size = 5.5) +
    scale_x_continuous(breaks = c(0, 25, 50, 75, 100)/100,
                       labels = label_percent(),
                       limits = c(0, 1)) +
    scale_y_continuous(labels = label_percent(), limits = c(0, 1)) +
    scale_fill_brewer() +
    scale_hjust_manual(values = c(0.3, 0.5, 0.8, 0.9)) +
    scale_colour_brewer() +
    coord_cartesian(expand = F) +
    theme_half_open() +
    theme(plot.margin = margin(t = 5, r = 15, b = 5, l = 5),
          legend.position = "none") +
    labs(x = "Tekjubil\n(0% eru lægsti tekjuhópurinn og 100% er hæsti tekjuhópurinn)",
         y = NULL,
         title = "Eignasköpunartekjur einstaklings sem hlutfall af heildartekjum eftir tekjubili",
         subtitle = "Eignasköpunartekjur: Ráðstöfunartekjur að frádregnum verðlagsleiðréttum neysluviðmiðum Félags- og vinnumarkaðsráðuneytisins fyrir einstaklinga frá 2019",
         caption = "Kóði og gögn: https://github.com/bgautijonsson/neysluvidmid")

p

Code
ggsave(plot = p, filename = "hlutfall_tekna_eignaskopun_tegund_vidmids.png",
       width = 8, height = 0.5 * 8, scale = 1.7, bg = "white")

2020 vs 2017

Grunnviðmið
Code
plot_dat <- tekjur_einst |>  
    filter(tekjuar %in% c(2012, 2020)) |>
    mutate(hlutf = einst_auka_ekki_bill / einst_heildartekjur,
           hlutf = pmax(hlutf, 0),
           tekjuar = fct_relevel(factor(tekjuar), "2020", "2016", "2012"))


p <- plot_dat |> 
    ggplot(aes(tekjubil, hlutf, fill = tekjuar)) +
    geom_area(position = "identity", alpha = 0.7, col = NA) +
    geom_textline(aes(label = tekjuar), hjust = "ymid", text_smoothing = 30, size = 5) +
    scale_x_continuous(breaks = c(5, 25, 50, 75, 100)) +
    scale_y_continuous(labels = label_percent(), limits = c(0, 1)) +
    scale_fill_brewer(type = "qual", palette = "Set1") +
    coord_cartesian(expand = F) +
    theme_half_open() +
    theme(plot.margin = margin(t = 5, r = 15, b = 5, l = 5),
          legend.position = "none") +
    labs(x = "Tekjubil\n(0% eru lægsti tekjuhópurinn og 100% er hæsti tekjuhópurinn)",
         y = NULL,
         title = "Eignasköpunartekjur sem hlutfall af heildartekjum eftir tekjubili",
         subtitle = "Eignasköpunartekjur: Ráðstöfunartekjur að frádregnum neysluviðmiðum einstaklinga án bíls, barns né fasteignar (133.000kr á mánuði 2020)",
         caption = "Kóði og gögn: https://github.com/bgautijonsson/neysluvidmid")



p

Code
ggsave(plot = p, filename = "hlutfall_tekna_eignaskopun_eftir_ari.png",
       width = 8, height = 0.5 * 8, scale = 1.7, bg = "white")
Leiguhúsnæði
Code
plot_dat <- tekjur_einst |>  
    filter(tekjuar %in% c(2016, 2020)) |>
    mutate(hlutf = einst_auka_fasteign / einst_heildartekjur,
           hlutf = pmax(hlutf, 0),
           tekjuar = fct_relevel(factor(tekjuar), "2020", "2016", "2012"))


p <- plot_dat |> 
    ggplot(aes(tekjubil, hlutf, fill = tekjuar)) +
    geom_area(position = "identity", alpha = 0.7, col = NA) +
    geom_textline(aes(label = tekjuar), hjust = "ymid", text_smoothing = 30, size = 5) +
    scale_x_continuous(breaks = c(5, 25, 50, 75, 100)) +
    scale_y_continuous(labels = label_percent(), limits = c(0, 1)) +
    scale_fill_brewer(type = "qual", palette = "Set1") +
    coord_cartesian(expand = F) +
    theme_half_open() +
    theme(plot.margin = margin(t = 5, r = 15, b = 5, l = 5),
          legend.position = "none") +
    labs(x = "Tekjubil\n(0% eru lægsti tekjuhópurinn og 100% er hæsti tekjuhópurinn)",
         y = NULL,
         title = "Eignasköpunartekjur sem hlutfall af heildartekjum eftir tekjubili",
         subtitle = "Ráðstöfunartekjur að frádregnum neysluviðmiðum einstaklinga með bíl, og leiguhúsnæði (372.000kr á mánuði 2020)",
         caption = "Kóði og gögn: https://github.com/bgautijonsson/neysluvidmid")



p

Code
ggsave(plot = p, filename = "hlutfall_tekna_eignaskopun_eftir_ari_leiga.png",
       width = 8, height = 0.5 * 8, scale = 1.7, bg = "white")

Magn eignasköpunartekna

Grunnviðmið

Code
plot_dat <- tekjur_einst |>  
    filter(tekjuar %in% c(2020)) |>
    mutate(hlutf = einst_auka_ekki_bill / einst_heildartekjur,
           hlutf = pmax(hlutf, 0))


p <- plot_dat |> 
    ggplot(aes(tekjubil/100, einst_auka_ekki_bill)) +
    geom_area(position = "identity", alpha = 0.7, col = NA) +
    scale_x_continuous(breaks = c(0, 25, 50, 75, 100)/100,
                       labels = label_percent(),
                       limits = c(0, 1)) +
    scale_y_continuous(labels = function(x) number(x/12, suffix = " kr"), 
                       trans = pseudo_log_trans(),
                       breaks = c(12 * c(1e4, 3e4, 1e5, 3e5, 1e6, 3e6, 1e7), max(plot_dat$einst_auka_ekki_bill))) +
    scale_fill_brewer() +
    scale_colour_brewer() +
    coord_cartesian(expand = F, ylim = c(1e6, NA)) +
    theme_half_open() +
    theme(plot.margin = margin(t = 5, r = 15, b = 5, l = 5),
          legend.position = "none") +
    labs(x = "Tekjubil\n(0% eru lægsti tekjuhópurinn og 100% er hæsti tekjuhópurinn)",
         y = NULL,
         title = "Mánaðarlegar eignasköpunartekjur einstaklinga eftir tekjubili",
         subtitle = "Eignasköpunartekjur: Ráðstöfunartekjur að frádregnum neysluviðmiðum einstaklinga án bíls, barns né fasteignar (133.000kr á mánuði 2020)")


p

Code
ggsave(plot = p, filename = "magn_tekna_eignaskopun.png",
       width = 8, height = 0.5 * 8, scale = 1.7, bg = "white")

Með leiguhúsnæði

Code
plot_dat <- tekjur_einst |>  
    filter(tekjuar %in% c(2020)) |>
    mutate(hlutf = einst_auka_fasteign / einst_heildartekjur,
           hlutf = pmax(hlutf, 0))


p <- plot_dat |> 
    ggplot(aes(tekjubil/100, einst_auka_fasteign)) +
    geom_area(position = "identity", alpha = 0.7, col = NA) +
    scale_x_continuous(breaks = c(0, 25, 50, 75, 100)/100,
                       labels = label_percent(),
                       limits = c(0, 1)) +
    scale_y_continuous(labels = function(x) number(x/12, suffix = " kr"), 
                       trans = pseudo_log_trans(),
                       breaks = c(12 * c(1e4, 3e4, 1e5, 3e5, 1e6, 3e6, 1e7), max(plot_dat$einst_auka_fasteign))) +
    scale_fill_brewer() +
    scale_colour_brewer() +
    coord_cartesian(expand = F, ylim = c(1e5, NA)) +
    theme_half_open() +
    theme(plot.margin = margin(t = 5, r = 15, b = 5, l = 5),
          legend.position = "none") +
    labs(x = "Tekjubil\n(0% eru lægsti tekjuhópurinn og 100% er hæsti tekjuhópurinn)",
         y = NULL,
         title = "Mánaðarlegar eignasköpunartekjur einstaklinga eftir tekjubili",
         subtitle = "Ráðstöfunartekjur að frádregnum neysluviðmiðum einstaklinga með bíl, og leiguhúsnæði (372.000kr á mánuði 2020)",
         caption = "Kóði og gögn: https://github.com/bgautijonsson/neysluvidmid")


p

Code
ggsave(plot = p, filename = "magn_tekna_eignaskopun_fasteign.png",
       width = 8, height = 0.5 * 8, scale = 1.7, bg = "white")

Eftir tegund neysluviðmiða

Code
plot_dat <- tekjur_einst |> 
    pivot_longer(c(contains("einst_auka"))) |> 
    select(tekjuar, tekjubil, einst_heildartekjur, name, value) |> 
    filter(tekjuar %in% c(2020)) |>
    mutate(hlutf = value / einst_heildartekjur,
           hlutf = pmax(hlutf, 0),
           name = fct_recode(name,
                             "Regluleg neysluviðmið (133.00kr/mán)" = "einst_auka_ekki_bill",
                             "+ bíll (201.000kr/mán)" = "einst_auka_bill",
                             "+ leiga (372.00kr/mán)" = "einst_auka_fasteign",
                             "+ barn (477.000kr/mán)" = "einst_auka_barn") |> 
               fct_relevel("Regluleg neysluviðmið (133.00kr/mán)",
                           "+ bíll (201.000kr/mán)", 
                           "+ leiga (372.00kr/mán)", 
                           "+ barn (477.000kr/mán)"))


p <- plot_dat |> 
    ggplot(aes(tekjubil/100, value, fill = name)) +
    geom_area(position = "identity", alpha = 0.7, col = NA) +
    geom_textline(aes(label = name, hjust = name), text_smoothing = 30, size = 5.5) +
    scale_x_continuous(breaks = c(0, 25, 50, 75, 100)/100,
                       labels = label_percent(),
                       limits = c(0, 1)) +
    scale_y_continuous(labels = function(x) number(x/12,suffix = " kr"), 
                       trans = pseudo_log_trans(),
                       breaks = c(12 * c(1e4, 3e4, 1e5, 3e5, 1e6, 3e6, 1e7), max(plot_dat$value))) +
    scale_fill_brewer() +
    scale_colour_brewer() +
    scale_hjust_manual(values = c(0.86, 0.9, 0.94, 0.96)) +
    coord_cartesian(expand = F, ylim = c(1e6, NA)) +
    theme_half_open() +
    theme(plot.margin = margin(t = 5, r = 15, b = 5, l = 5),
          legend.position = "none") +
    labs(x = "Tekjubil\n(0% eru lægsti tekjuhópurinn og 100% er hæsti tekjuhópurinn)",
         y = NULL,
         title = "Mánaðarlegar eignasköpunartekjur einstaklinga eftir tekjubili",
         subtitle = "Eignasköpunartekjur: Ráðstöfunartekjur að frádregnum verðlagsleiðréttum neysluviðmiðum Félags- og vinnumarkaðsráðuneytisins fyrir einstaklinga frá 2019",
         caption = "Kóði og gögn: https://github.com/bgautijonsson/neysluvidmid")

p

Code
ggsave(plot = p, filename = "magn_tekna_eignaskopun_tegund_vidmids.png",
       width = 8, height = 0.5 * 8, scale = 1.7, bg = "white")

Par

Code
tekjur_par <- read_excel("V_HJUSKAPUR_TEKJUBIL_EINST.xlsx") |> 
    janitor::clean_names() |> 
    filter(tekjubil >= 0, tekjubil <= 100) |> 
    group_by(tekjuar, tekjubil) |> 
    summarise(fjoldi = sum(fjoldi),
              laun = sum(laun),
              tekjuskattur = sum(tekjuskattur),
              heildartekjur = sum(heildartekjur),
              skattar = sum(skattar),
              heildarskuldir = sum(heildarskuldir),
              lifeyrirsgreidslur = sum(lifeyrirsgreidslur),
              radst_tekjur = heildartekjur - skattar - lifeyrirsgreidslur,
              tekjuar = unique(as.numeric(tekjuar)),
              einst_radst = 2 * radst_tekjur / fjoldi,
              einst_heildartekjur = 2 * heildartekjur / fjoldi,
              .groups = "drop") |> 
    select(tekjuar, tekjubil, fjoldi, einst_radst, einst_heildartekjur, skattar) |> 
    arrange(tekjuar, tekjubil) |> 
    inner_join(
        neysluvidmid_par,
        by = c("tekjuar")
    ) |> 
    inner_join(
        d_fast,
        by = "tekjuar"
    ) |> 
    mutate(
        neysluvidmid_fasteign = neysluvidmid_bill + kaupverd * 0.042,
        neysluvidmid_barn = neysluvidmid_barn + kaupverd * 0.042,
        einst_auka_bill = einst_radst - neysluvidmid_bill,
        einst_auka_ekki_bill = einst_radst - neysluvidmid_ekki_bill,
        einst_auka_fasteign = einst_radst - neysluvidmid_fasteign,
        einst_auka_barn = einst_radst - neysluvidmid_barn
    )

Hlutfall eignasköpunartekna af heildartekjum

2020

Code
plot_dat <- tekjur_par |>  
    filter(tekjuar %in% c(2020)) |>
    mutate(hlutf = einst_auka_fasteign / einst_heildartekjur,
           hlutf = pmax(hlutf, 0))


p <- plot_dat |> 
    ggplot(aes(tekjubil, hlutf)) +
    geom_area(position = "identity", alpha = 0.8, col = "black") +
    scale_x_continuous(breaks = c(5, 25, 50, 75, 100)) +
    scale_y_continuous(labels = label_percent(), limits = c(0, 1)) +
    scale_fill_brewer() +
    coord_cartesian(expand = F) +
    theme_half_open() +
    theme(plot.margin = margin(t = 5, r = 15, b = 5, l = 5),
          legend.position = "none") +
    labs(x = "Tekjubil\n(0% eru lægsti tekjuhópurinn og 100% er hæsti tekjuhópurinn)",
         y = NULL,
         title = "Eignasköpunartekjur pars í sambúð sem hlutfall af heildartekjum eftir tekjubili",
         subtitle = "Eignasköpunartekjur: 2 x Ráðstöfunartekjur einstaklings að frádregnum neysluviðmiðum pars með bíl og leiguhúsnæði en án barns (464.000kr á mánuði 2020)")



p

Code
ggsave(plot = p, filename = "hlutfall_tekna_eignaskopun_par.png",
       width = 8, height = 0.5 * 8, scale = 1.7, bg = "white")
Code
plot_dat <- tekjur_par |> 
    pivot_longer(c(contains("einst_auka"))) |> 
    select(tekjuar, tekjubil, einst_heildartekjur, name, value) |> 
    filter(tekjuar %in% c(2020)) |>
    mutate(hlutf = value / einst_heildartekjur,
           hlutf = pmax(hlutf, 0),
           name = fct_recode(name,
                             "Regluleg neysluviðmið (218.00kr/mán)" = "einst_auka_ekki_bill",
                             "+ bíll (293.000kr/mán)" = "einst_auka_bill",
                             "+ leiga (464.00kr/mán)" = "einst_auka_fasteign",
                             "+ barn (577.000kr/mán)" = "einst_auka_barn") |> 
               fct_relevel("Regluleg neysluviðmið (218.00kr/mán)",
                           "+ bíll (293.000kr/mán)", 
                           "+ leiga (464.00kr/mán)", 
                           "+ barn (577.000kr/mán)"))


p <- plot_dat |> 
    ggplot(aes(tekjubil/100, hlutf, fill = name)) +
    geom_area(position = "identity", alpha = 0.7, col = NA) +
    geom_textline(aes(label = name, hjust = name), text_smoothing = 30, size = 5.5) +
    scale_x_continuous(breaks = c(0, 25, 50, 75, 100)/100,
                       labels = label_percent(),
                       limits = c(0, 1)) +
    scale_y_continuous(labels = label_percent(), limits = c(0, 1)) +
    scale_fill_brewer() +
    scale_hjust_manual(values = c(0.3, 0.5, 0.8, 0.9)) +
    scale_colour_brewer() +
    coord_cartesian(expand = F) +
    theme_half_open() +
    theme(plot.margin = margin(t = 5, r = 15, b = 5, l = 5),
          legend.position = "none") +
    labs(x = "Tekjubil\n(0% eru lægsti tekjuhópurinn og 100% er hæsti tekjuhópurinn)",
         y = NULL,
         title = "Eignasköpunartekjur pars í sambúð sem hlutfall af heildartekjum eftir tekjubili",
         subtitle = "Eignasköpunartekjur: Ráðstöfunartekjur að frádregnum verðlagsleiðréttum neysluviðmiðum Félags- og vinnumarkaðsráðuneytisins fyrir par frá 2019",
         caption = "Kóði og gögn: https://github.com/bgautijonsson/neysluvidmid")

p

Code
ggsave(plot = p, filename = "hlutfall_tekna_eignaskopun_tegund_vidmids_par.png",
       width = 8, height = 0.5 * 8, scale = 1.7, bg = "white")

2020 vs 2012

Code
plot_dat <- tekjur_par |>  
    filter(tekjuar %in% c(2012, 2020)) |>
    mutate(hlutf = einst_auka_fasteign / einst_heildartekjur,
           hlutf = pmax(hlutf, 0),
           tekjuar = fct_relevel(factor(tekjuar), "2020", "2016", "2012"))


p <- plot_dat |> 
    ggplot(aes(tekjubil, hlutf, fill = tekjuar)) +
    geom_area(position = "identity", alpha = 0.7, col = NA) +
    geom_textline(aes(label = tekjuar, hjust = tekjuar),
                  text_smoothing = 30, size = 5) +
    scale_x_continuous(breaks = c(5, 25, 50, 75, 100)) +
    scale_y_continuous(labels = label_percent(), limits = c(0, 1)) +
    scale_fill_brewer(type = "qual", palette = "Set1") +
    scale_hjust_manual(values = c(0.6, 0.5)) +
    coord_cartesian(expand = F) +
    theme_half_open() +
    theme(plot.margin = margin(t = 5, r = 15, b = 5, l = 5),
          legend.position = "none") +
    labs(x = "Tekjubil\n(0% eru lægsti tekjuhópurinn og 100% er hæsti tekjuhópurinn)",
         y = NULL,
         title = "Eignasköpunartekjur pars í sambúð sem hlutfall af heildartekjum eftir tekjubili",
         subtitle = "Eignasköpunartekjur: 2 x Ráðstöfunartekjur einstaklings að frádregnum neysluviðmiðum pars með bíl og leiguhúsnæði en án barns (464.000kr á mánuði 2020)")



p

Code
ggsave(plot = p, filename = "hlutfall_tekna_eignaskopun_eftir_ari_par.png",
       width = 8, height = 0.5 * 8, scale = 1.7, bg = "white")

Magn eignasköpunartekna

Code
plot_dat <- tekjur_par |>  
    filter(tekjuar %in% c(2020)) |>
    mutate(hlutf = einst_auka_fasteign / einst_heildartekjur,
           hlutf = pmax(hlutf, 0))


p <- plot_dat |> 
    ggplot(aes(tekjubil/100, einst_auka_fasteign)) +
    geom_area(position = "identity", alpha = 0.7, col = NA) +
    scale_x_continuous(breaks = c(0, 25, 50, 75, 100)/100,
                       labels = label_percent(),
                       limits = c(0, 1)) +
    scale_y_continuous(labels = function(x) number(x/12, suffix = " kr"), 
                       trans = pseudo_log_trans(),
                           breaks = c(12 * c(1e4, 3e4, 1e5, 3e5, 1e6, 3e6, 1e7, 3e7), max(plot_dat$einst_auka_fasteign))) +
    scale_fill_brewer() +
    scale_colour_brewer() +
    coord_cartesian(expand = F, ylim = c(1.2e5, NA)) +
    theme_half_open() +
    theme(plot.margin = margin(t = 5, r = 15, b = 5, l = 5),
          legend.position = "none") +
    labs(x = "Tekjubil\n(0% eru lægsti tekjuhópurinn og 100% er hæsti tekjuhópurinn)",
         y = NULL,
         title = "Mánaðarlegar eignasköpunartekjur pars í sambúð eftir tekjubili",
         subtitle = "Eignasköpunartekjur: 2 x Ráðstöfunartekjur einstaklings að frádregnum neysluviðmiðum pars með bíl og leiguhúsnæði en án barns (464.000kr á mánuði 2020)")


p

Code
ggsave(plot = p, filename = "magn_tekna_eignaskopun_par.png",
       width = 8, height = 0.5 * 8, scale = 1.7, bg = "white")

Eftir tegund neysluviðmiða

Eftir tegund neysluviðmiða

Code
plot_dat <- tekjur_par |> 
    pivot_longer(c(contains("einst_auka"))) |> 
    select(tekjuar, tekjubil, einst_heildartekjur, name, value) |> 
    filter(tekjuar %in% c(2020)) |>
    mutate(hlutf = value / einst_heildartekjur,
           hlutf = pmax(hlutf, 0),
           name = fct_recode(name,
                             "Regluleg neysluviðmið (218.00kr/mán)" = "einst_auka_ekki_bill",
                             "+ bíll (293.000kr/mán)" = "einst_auka_bill",
                             "+ leiga (464.00kr/mán)" = "einst_auka_fasteign",
                             "+ barn (577.000kr/mán)" = "einst_auka_barn") |> 
               fct_relevel("Regluleg neysluviðmið (218.00kr/mán)",
                           "+ bíll (293.000kr/mán)", 
                           "+ leiga (464.00kr/mán)", 
                           "+ barn (577.000kr/mán)"))


p <- plot_dat |> 
    ggplot(aes(tekjubil/100, value, fill = name)) +
    geom_area(position = "identity", alpha = 0.7, col = NA) +
    geom_textline(aes(label = name, hjust = name), text_smoothing = 30, size = 5.5) +
    scale_x_continuous(breaks = c(0, 25, 50, 75, 100)/100,
                       labels = label_percent(),
                       limits = c(0, 1)) +
    scale_y_continuous(labels = function(x) number(x/12, suffix = " kr"), 
                       trans = pseudo_log_trans(),
                       breaks = c(12 * c(1e4, 3e4, 1e5, 3e5, 1e6, 3e6, 1e7), max(plot_dat$value))) +
    scale_fill_brewer() +
    scale_colour_brewer() +
    scale_hjust_manual(values = c(0.81, 0.85, 0.89, 0.95)) +
    coord_cartesian(expand = F, ylim = c(1e6, NA)) +
    theme_half_open() +
    theme(plot.margin = margin(t = 5, r = 15, b = 5, l = 5),
          legend.position = "none") +
    labs(x = "Tekjubil\n(0% eru lægsti tekjuhópurinn og 100% er hæsti tekjuhópurinn)",
         y = NULL,
         title = "Mánaðarlegar eignasköpunartekjur sem par í sambúð getur notað í fjárfestingar og eignasköpun",
         subtitle = "Eignasköpunartekjur: Ráðstöfunartekjur að frádregnum verðlagsleiðréttum neysluviðmiðum Félags- og vinnumarkaðsráðuneytisins fyrir par frá 2019",
         caption = "Kóði og gögn: https://github.com/bgautijonsson/neysluvidmid")

p

Code
ggsave(plot = p, filename = "magn_tekna_eignaskopun_tegund_vidmids_par.png",
       width = 8, height = 0.5 * 8, scale = 1.7, bg = "white")